# Quantitative test of diffusion on 3D surfaces
# units are nanometer and milliseconds

define SEED 1
define NMOL 1000000		# use 100 for picture, 1000000 for validation

define V0B -450 -180 0
define V0F -450 -180 100
define V1B 150 60 0
define V1F 150 60 100
define V2B 450 180 0
define V2F 450 180 100
define V3B 450 -60 0
define V3F 450 -60 100

graphics opengl_better
light room ambient 0 0 0
light 0 position -1 1 1 0
light 0 diffuse 0.5 0.5 0.5
light 0 ambient 0.5 0.5 0.5
light 0 specular 0.5 0.5 0.5

random_seed SEED
gauss_table_size 65536

dim 3
boundaries x -500 500
boundaries y -500 500
boundaries z 0 100

boxsize 1000

species red green

molecule_lists redlist greenlist
mol_list red(all) redlist
mol_list green(all) greenlist

difc red(all) 100	# 100 nm^2/ms = 0.1 um^2/s
difc green(all) 30000	# 300x faster than red to account for shorter time

color red(all) red
color green(all) green
display_size red(all) 5
display_size green(all) 0

time_start 0
time_stop 300
time_step 1

frame_thickness 0

start_surface surf1
color both lightgrey
polygon both fe
shininess both 10
thickness 2

panel tri V0F V0B V1F t1
panel tri V0B V1B V1F t2
panel tri V1F V1B V2F t3
panel tri V1B V2B V2F t4
panel tri V1F V1B V3F t5
panel tri V1B V3B V3F t6

neighbors t1 t2 t3 t5
neighbors t2 t1 t3 t4 t5 t6
neighbors t3 t1 t2 t4 t5 t6
neighbors t4 t2 t3 t5 t6
neighbors t5 t1 t2 t3 t4 t6
neighbors t6 t2 t3 t4 t5

end_surface


surface_mol NMOL red(up) surf1 tri t2  0 0 50
surface_mol NMOL green(up) surf1 tri t2  0 0 50

output_files FILEROOTout.txt stdout
output_format csv
cmd @ 1 set difc green(all) 0

cmd A molcountspace red(all) x -450 450 90 -500 500 0 100 0 FILEROOTout.txt
cmd A molcountspace green(all) x -450 450 90 -500 500 -1 101 0 FILEROOTout.txt

cmd A molcount stdout

end_file

